<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstStreamVolume: GStreamer Base Plugins 1.0 Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-GstAudio-IEC61937.html" title="GstAudio IEC61937">
<link rel="next" href="gstreamer-ffft.html" title="FFT Library">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GstStreamVolume.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GstStreamVolume.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_prerequisites">  <span class="dim">|</span> 
                  <a href="#GstStreamVolume.prerequisites" class="shortcut">Prerequisites</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GstStreamVolume.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gst-plugins-base-libs-GstAudio-IEC61937.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gstreamer-ffft.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GstStreamVolume"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstStreamVolume.top_of_page"></a>GstStreamVolume</span></h2>
<p>GstStreamVolume — Interface for elements that provide a stream volume</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GstStreamVolume.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
</td>
<td class="function_name">
<a class="link" href="GstStreamVolume.html#gst-stream-volume-get-volume" title="gst_stream_volume_get_volume ()">gst_stream_volume_get_volume</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstStreamVolume.html#gst-stream-volume-set-volume" title="gst_stream_volume_set_volume ()">gst_stream_volume_set_volume</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="GstStreamVolume.html#gst-stream-volume-get-mute" title="gst_stream_volume_get_mute ()">gst_stream_volume_get_mute</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstStreamVolume.html#gst-stream-volume-set-mute" title="gst_stream_volume_set_mute ()">gst_stream_volume_set_mute</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
</td>
<td class="function_name">
<a class="link" href="GstStreamVolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()">gst_stream_volume_convert_volume</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstStreamVolume.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="GstStreamVolume.html#GstStreamVolume--mute" title="The “mute” property">mute</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
<td class="property_name"><a class="link" href="GstStreamVolume.html#GstStreamVolume--volume" title="The “volume” property">volume</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstStreamVolume.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GstStreamVolume.html#GstStreamVolume-struct" title="GstStreamVolume">GstStreamVolume</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat">GstStreamVolumeFormat</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstStreamVolume.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/GTypeModule.html">GInterface</a>
    <span class="lineart">╰──</span> GstStreamVolume
</pre>
</div>
<div class="refsect1">
<a name="GstStreamVolume.prerequisites"></a><h2>Prerequisites</h2>
<p>
GstStreamVolume requires
 <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>.</p>
</div>
<div class="refsect1">
<a name="GstStreamVolume.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/audio/audio.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GstStreamVolume.description"></a><h2>Description</h2>
<p>This interface is implemented by elements that provide a stream volume. Examples for
such elements are <span class="type">volume</span> and <span class="type">playbin</span>.</p>
<p>Applications can use this interface to get or set the current stream volume. For this
the "volume" <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a> property can be used or the helper functions <a class="link" href="GstStreamVolume.html#gst-stream-volume-set-volume" title="gst_stream_volume_set_volume ()"><code class="function">gst_stream_volume_set_volume()</code></a>
and <a class="link" href="GstStreamVolume.html#gst-stream-volume-get-volume" title="gst_stream_volume_get_volume ()"><code class="function">gst_stream_volume_get_volume()</code></a>. This volume is always a linear factor, i.e. 0.0 is muted
1.0 is 100%. For showing the volume in a GUI it might make sense to convert it to
a different format by using <a class="link" href="GstStreamVolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()"><code class="function">gst_stream_volume_convert_volume()</code></a>. Volume sliders should usually
use a cubic volume.</p>
<p>Separate from the volume the stream can also be muted by the "mute" <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a> property or
<a class="link" href="GstStreamVolume.html#gst-stream-volume-set-mute" title="gst_stream_volume_set_mute ()"><code class="function">gst_stream_volume_set_mute()</code></a> and <a class="link" href="GstStreamVolume.html#gst-stream-volume-get-mute" title="gst_stream_volume_get_mute ()"><code class="function">gst_stream_volume_get_mute()</code></a>.</p>
<p>Elements that provide some kind of stream volume should implement the "volume" and
"mute" <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a> properties and handle setting and getting of them properly.
The volume property is defined to be a linear volume factor.</p>
</div>
<div class="refsect1">
<a name="GstStreamVolume.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gst-stream-volume-get-volume"></a><h3>gst_stream_volume_get_volume ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
gst_stream_volume_get_volume (<em class="parameter"><code><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                              <em class="parameter"><code><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>);</pre>
<div class="refsect3">
<a name="gst-stream-volume-get-volume.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>volume</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> which should be returned</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-stream-volume-get-volume.returns"></a><h4>Returns</h4>
<p> The current stream volume as linear factor</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-stream-volume-set-volume"></a><h3>gst_stream_volume_set_volume ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_stream_volume_set_volume (<em class="parameter"><code><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                              <em class="parameter"><code><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
<div class="refsect3">
<a name="gst-stream-volume-set-volume.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>volume</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> of <em class="parameter"><code>val</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>val</p></td>
<td class="parameter_description"><p>Linear volume factor that should be set</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-stream-volume-get-mute"></a><h3>gst_stream_volume_get_mute ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
gst_stream_volume_get_mute (<em class="parameter"><code><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>);</pre>
<div class="refsect3">
<a name="gst-stream-volume-get-mute.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>volume</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-stream-volume-get-mute.returns"></a><h4>Returns</h4>
<p> Returns <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is muted</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-stream-volume-set-mute"></a><h3>gst_stream_volume_set_mute ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_stream_volume_set_mute (<em class="parameter"><code><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
<div class="refsect3">
<a name="gst-stream-volume-set-mute.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>volume</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html" title="GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mute</p></td>
<td class="parameter_description"><p>Mute state that should be set</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-stream-volume-convert-volume"></a><h3>gst_stream_volume_convert_volume ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
gst_stream_volume_convert_volume (<em class="parameter"><code><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> from</code></em>,
                                  <em class="parameter"><code><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
<div class="refsect3">
<a name="gst-stream-volume-convert-volume.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>from</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to convert from</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>to</p></td>
<td class="parameter_description"><p><a class="link" href="GstStreamVolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to convert to</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>val</p></td>
<td class="parameter_description"><p>Volume in <em class="parameter"><code>from</code></em>
format that should be converted</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-stream-volume-convert-volume.returns"></a><h4>Returns</h4>
<p> the converted volume</p>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstStreamVolume.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstStreamVolume-struct"></a><h3>GstStreamVolume</h3>
<pre class="programlisting">typedef struct _GstStreamVolume GstStreamVolume;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GstStreamVolumeFormat"></a><h3>enum GstStreamVolumeFormat</h3>
<p>Different representations of a stream volume. <a class="link" href="GstStreamVolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()"><code class="function">gst_stream_volume_convert_volume()</code></a>
allows to convert between the different representations.</p>
<p>Formulas to convert from a linear to a cubic or dB volume are
cbrt(val) and 20 * log10 (val).</p>
<div class="refsect3">
<a name="GstStreamVolumeFormat.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-STREAM-VOLUME-FORMAT-LINEAR:CAPS"></a>GST_STREAM_VOLUME_FORMAT_LINEAR</p></td>
<td class="enum_member_description">
<p>Linear scale factor, 1.0 = 100%</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-STREAM-VOLUME-FORMAT-CUBIC:CAPS"></a>GST_STREAM_VOLUME_FORMAT_CUBIC</p></td>
<td class="enum_member_description">
<p>Cubic volume scale</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-STREAM-VOLUME-FORMAT-DB:CAPS"></a>GST_STREAM_VOLUME_FORMAT_DB</p></td>
<td class="enum_member_description">
<p>Logarithmic volume scale (dB, amplitude not power)</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstStreamVolume.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstStreamVolume--mute"></a><h3>The <code class="literal">“mute”</code> property</h3>
<pre class="programlisting">  “mute”                     <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Mute the audio channel without changing the volume.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstStreamVolume--volume"></a><h3>The <code class="literal">“volume”</code> property</h3>
<pre class="programlisting">  “volume”                   <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
<p>Linear volume factor, 1.0=100%.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 1</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>